package com.xunk.scene.domain;

import com.xunk.common.core.annotation.Excel;
import com.xunk.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @ProjectName: HIM
 * @Package: com.xunk.scene.domain
 * @ClassName: EquipmentAction
 * @Author: luanzhiwei
 * @Description: 设备动作表实体类
 * @Date: 2021/5/6 11:18
 * @Version: 1.0
 */
@Data
@NoArgsConstructor
@ToString
@EqualsAndHashCode
public class SceneActionEquipment extends BaseEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 自增主键
     */
    private Long id;

    /**
     * 场景id
     */
    @Excel(name = "场景id")
    private Long sceneId;

    /**
     * 是否开关，1是0否
     */
    private String isSwitch;

    /**
     * 设备类型
     */
    @Excel(name = "设备类型")
//    @NotBlank(message = "设备类型不能为空", groups = {Add.class, Model.class})
    private String deviceType;

    /**
     * 供应商
     */
//    @NotBlank(message = "供应商不能为空", groups = {Add.class, Model.class})
    private String supplier;

    /**
     * 1 网关 2 网关子设备 3 wifi
     */
//    @NotBlank(message = "设备分类不能为空", groups = {Add.class, Model.class})
    private String deviceCategory;

    /**
     * 设备ID
     */
    @Excel(name = "设备ID")
    private String deviceSn;

    /**
     * 设备属性
     */
    @Excel(name = "设备属性")
    @NotBlank(message = "设备属性不能为空", groups = {Add.class, Model.class})
    private String deviceProp;

    /**
     * 属性值
     */
    @Excel(name = "属性值")
    @NotBlank(message = "属性值不能为空", groups = {Add.class, Model.class})
    private String propValue;

    /**
     * 属性描述，例如空调 开关
     */
    private String propDescription;

    /**
     * 属性值描述，例如开关 打开
     */
    private String valueDescription;

    /**
     * 房间名称
     */
    private String roomName;
    /**
     * 设备名称，例如空调
     */
    private String deviceName;
    /**
     * 激活标识，1是0否 表示该条设备动作，在当前场景被触发时，是否要执行。
     * 模板场景页面中展示，默认为1
     */
    private String activeFlag;

    /**
     * 延时执行时间，分钟
     */
    @Excel(name = "延时执行时间，分钟")
    private Long delay;

    /**
     * 删除标识
     */
    private String delFlag;


    public interface Add {
        //校验分组，添加
    }

    public interface Model {
        //设置模板
    }
}
